Computer systems may include interactive software tools that provide environments for the modeling and simulation of electrical, electronic, mechanical and software systems. The systems may be designed and simulated in textual or graphical environments, such as time-based block diagrams, data-flow diagrams, and state-based and flow diagrams, and other graphical models. Simulink® and Stateflow®, both from The MathWorks Inc. of Natick, Mass., are the exemplary software tools that provide time-based block diagrams and state-based and flow diagram modeling and execution environments. Data flow diagrams are used to describe how data flows between processes in a system. Data-flow diagrams describe a graphical programming paradigm where the availability of data (often thought of as tokens) is used to initiate the execution of blocks, where a block represents an operation and a line represents execution dependency describing the direction of data flowing between blocks.
Modern modeling and execution software tools are designed to be very flexible, which means that the models of systems or subsystems support various attributes of signals that are applied to/from the models. For example, if a model performs the function of computing the average value of ten signals (or variables), the model may compute the average value of the signals without regard to the attributes of the signals. When the implementation of a model can handle signals with a variety of attributes, the implementation is called “polymorphic.” The polymorphic implementations make it easier for users to construct an initial model. However, at later stages, the polymorphism may complicate the testing process of the model because small localized design changes cause the attributes of signals to change throughout the model. Users should repeat all of the prior testing process to determine the signal attributes of the model changed. For a large design, the repetition process is rigorous, time consuming, and expensive.
In conventional modeling and execution systems, users partition the design of a model and lock down the attributes of the signals on the boundary between partitions to deal with the problem mentioned above. In the conventional modeling and execution systems, users manually enter all of the information on the attributes of the boundary signals and lock down the attributes of the boundary signals. This manual locking down process is laborious and error prone. Therefore, there is a need for modeling and execution systems that automatically collect all of the information on the attributes of the signals. There is also a need for modeling and execution systems that automatically lock down the attributes of the signals based on the information collected.